The present invention relates to a coordinate data input system for computer graphics (especially, a three-dimensional graphics) and a method therefor; and in particular, a coordinate input system for controlling the location and the posture of a displayed graphic model, and a method therefor. More specifically, the present invention pertains to a coordinate data input system that can use a conventional coordinate pointing device, such as a mouse to input control data (displacement value) concerning the location and the posture of a displayed graphic model, and to a method therefor.
In accordance with recent technical developments, there has been an increase in the fields for which computer systems are employed. The creation of graphics and images and the use of computers to process them is one example. The techniques employed for graphic processing have become more important in CAD/CAM as employed in science, engineering, manufacturing, and other fields, and in the development of various software programs.
In the graphic processing field, particularly in the three dimensional graphic processing field, the ability to rotate and translate a displayed object (i.e., control the location and the posture of the object) on a screen is in high demand. A three-dimensional graphic system, therefore, in addition to a so-called computer system main body, generally further includes a graphics display device and an instruction input device for inputting the location and the posture of an object. It is preferable that the computer system, as well as, for example, a graphic workstation, have a high speed CPU, a large capacity memory, a high speed video adaptor, and a DASD (Direct Access Storage Device; e.g., a hard disk) that has a large memory capacity. Further, it is desirable that the graphics display device have a bit-mapped display with a high resolution of 1000 1000 dots or higher. Further, since the location and the posture of the three-dimensional object has six degrees of freedom, which are three axial directions xyz and rotational directions around the individual axis, preferably, the input device has at least six dimensional input mechanisms. In addition, a degree of freedom for the enlargement/reduction of the object on a screen is required.
For example, an "IBM 5085/86" (hereinafter referred to as a 5085/86") is an input/output terminal, for a graphics application programs activated by a host mainframe. The 5085/86 has an excellent display function, especially for graphics, and can process and display a graphic model at high speed, and has, as standard features, input devices, such as a dial, a tablet and a keyboard, that are easily manipulated.
"6094 Dials Model 010" (hereinafter referred to as a hardware dial), sold by IBM Corp., is the most typical example of an instruction input device that can be used for the IBM 5085/86. The hardware dial is a rotary input device that has eight dials, as is shown in FIG. 13. The individual dials of the hardware dial are assigned for the position of an object in xyz axial directions, rotation around the respective axes, and size enlargement/reduction control. Since each dial has a conical shape, an operator can easily input a relatively great displacement value by rotating the distal tapered portion of the dial, and can input a small displacement value by rotating the large base portion of the dial. While the hardware dial provides excellent operability, it is very expensive. For a high-end user who can afford to purchase a relatively expensive graphics terminal, such as the IBM 5085/86, the price of the hardware dial may not be a big matter; but for a user who employs a terminal emulation program instead of such a graphic terminal, the price of the hardware dial is too high to be disregarded. "IBM Soft5080 for AIX" (hereinafter referred to as a "5080 emulation"), sold by IBM Japan Co., Ltd., is a program for emulating the IBM 5085/86 graphics terminal on a general-purpose computer system, e.g., an RS/6000 ("RS/6000" is a trademark of IBM Corp.)(lt should be noted that a graphics adaptor must be mounted in the computer system, and AIX ("AIX" is a trademark of IBM Corp.) must be installed as the operating system.). The 5080 emulation provides the functions of the 5085/86 terminal in the AIX-Window environment by emulating almost all the functions, such as channel command processing for an application program (e.g., CADAM or CATIA) operated by a host mainframe, the execution of a graphic display program, and input by a user with a hardware dial or at a keyboard. Various software tools, to include "software dials", are packaged together with the 5080 emulation and for sale on the market. Software dials is an application program for emulating the functions of the hardware dials with dials displayed in a window on a screen, and is also a tool for emulating the functions of the hardware dials by using a pointing device, such as a mouse, that is available at a relatively low price and is widely used.
In FIG. 14 is shown a display panel for software dials. As is shown, on the screen software dials occupy one window constituted by a title bar at the top, a menu bar below it, and eight software dials intended to imitate the hardware dials. Two buttons are displayed next to each dial, one on either side, for inputting the rotation of the dial in the clockwise and the counterclockwise direction. Inside the circle representing each software dial is a position indicator for displaying a current indicated value. To manipulate software dials, either the left button or the right button of a software dial allocated for a desired degree of freedom (e.g., the rotation around the x axis and the translating along the x axis) is pointed at and clicked as needed. The clicking of the left or the right button with a mouse emulates as an instruction of the counterclockwise rotation or the clockwise rotation of a hardware dial. The input rotation value may be proportional to the number of clicks or the duration of the depression of the mouse button. The position indicator within the circle of the dial updates the rotational location in accordance with the instructed dial rotation value. The rotation distance for each click, or the rotation distance for each measured time period a button is depressed, may be a default value or a user programmable value.
Software dials shown in FIG. 14 emulate as closely as possible the images and functions of the hardware dials, which are rotary input hardware devices, and an operator can use them intuitively. However, since in such software emulation, almost all the input manipulations are realized by clicking with a mouse button, there is a certain gap between such manipulation and manipulations that involve hardware use, and several difficulties exist related to the input of a rotation instruction and the translating of an object.
For example, a CAD/CAM operator tends to gradually translate from the rough rotation and movement of a graphic model to the delicate control of the graphic model, e.g., from a large movement of the model to a small movement. When an operator uses a hardware dial, which is conically shaped, he or she rotates the distal tapered portion of the dial to input a relatively great displacement, or rotates the large base portion to input a fine displacement. When the operator employs software dials, the dial rotation value is proportional to the number of clicks with the left/right button, or to the duration of the depression of the button. The constant of proportionality is fixed during the input manipulation, regardless of whether it is a default value or a user programmable value. Thus, the rotation value or the translate value of a graphic model for each manipulation with a mouse is uniform, and the moderate rotation and translating involving the use of hardware dials can not be emulated. Even when the constant of proportionality is user programmable, it is fixedly employed once it is set, and moderate input operation can not be realized.